package com.qin.service;

import java.util.List;

import com.qin.entity.Order;
import com.qin.entity.OrderBook;
import com.qin.entity.User;

/**
 * 订单服务
 * @author BestRiven
 *
 */
public interface OrderService {

	/**
	 * 插入一个订单
	 * @param order 要插入的订单
	 * @return 自增id
	 */
	public Long insertOrder(Order order);
	
	/**
	 * 基于事务的插入订单
	 * @param userId 用户id
	 * @param orderbooks 要插入的订单图书
	 * @return 订单的自增id
	 */
	public Long insertOrderBeforOrderBookByTx(User user,List<OrderBook> orderbooks);
	
	/**
	 * 逻辑删除订单
	 * @param id 要删除的订单id
	 * @return 影响行数（0代表失败）
	 */
	public int logicDeleteOrder(Long id);
	
	/**
	 * 通过订单id，查询订单
	 * @param id
	 * @return
	 */
	public Order queryOrderById(Long id);
	
	/**
	 * 根据用户id查询所有的订单
	 * @param id 用户id
	 * @return 所有的订单
	 */
	public List<Order> querryOrdersByUserId(Long id);
}
